/**
 * Create in 2012-4-27.
 */
package kit4j.util.lang;

/**
 * 枚举类型工具类。
 * 
 * @author MiniKnife
 * 
 */
public abstract class EnumUtil {

	/**
	 * 通过枚举常量的序数获取指定枚举类型的枚举常量。
	 * 
	 * @param enumClass
	 *            枚举类型
	 * @param ordinal
	 *            枚举常量的序数
	 * @return 枚举常量
	 * @throws IllegalArgumentException
	 *             如果不存在指定的枚举常量的序数对应的枚举常量。
	 */
	public static <T extends Enum<T>> T getEnumByOrdinal(Class<T> enumClass, int ordinal)
			throws IllegalArgumentException {
		T[] enums = enumClass.getEnumConstants();

		if (ordinal >= enums.length || ordinal < 0) {
			throw new IllegalArgumentException("ordinal: " + ordinal);
		} else {
			return enums[ordinal];
		}
	}
}
